<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>FabGL: Mouse Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">FabGL
   </div>
   <div id="projectbrief">ESP32 Display Controller and Graphics Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classfabgl_1_1_mouse.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classfabgl_1_1_mouse-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">Mouse Class Reference</div></div>
</div><!--header-->
<div class="contents">

<p>The PS2 <a class="el" href="classfabgl_1_1_mouse.html" title="The PS2 Mouse controller class.">Mouse</a> controller class.  
 <a href="classfabgl_1_1_mouse.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="mouse_8h_source.html">mouse.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Mouse:</div>
<div class="dyncontent">
<div class="center"><img src="classfabgl_1_1_mouse__inherit__graph.png" border="0" usemap="#a_mouse_inherit__map" alt="Inheritance graph"/></div>
<map name="a_mouse_inherit__map" id="a_mouse_inherit__map">
<area shape="rect" title="The PS2 Mouse controller class." alt="" coords="19,80,80,107"/>
<area shape="rect" href="classfabgl_1_1_p_s2_device.html" title="Base class for PS2 devices (like mouse or keyboard)." alt="" coords="5,5,93,32"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:adcc67a74d344caca0d4cbcbdba844519"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_adcc67a74d344caca0d4cbcbdba844519.html#adcc67a74d344caca0d4cbcbdba844519">availableStatus</a> ()</td></tr>
<tr class="memdesc:adcc67a74d344caca0d4cbcbdba844519"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the number of available mouse status.  <a href="classfabgl_1_1_mouse_adcc67a74d344caca0d4cbcbdba844519.html#adcc67a74d344caca0d4cbcbdba844519">More...</a><br /></td></tr>
<tr class="separator:adcc67a74d344caca0d4cbcbdba844519"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56921ef9b7157bb48751c7517531a798"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a56921ef9b7157bb48751c7517531a798.html#a56921ef9b7157bb48751c7517531a798">begin</a> (gpio_num_t clkGPIO, gpio_num_t dataGPIO)</td></tr>
<tr class="memdesc:a56921ef9b7157bb48751c7517531a798"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes <a class="el" href="classfabgl_1_1_mouse.html" title="The PS2 Mouse controller class.">Mouse</a> specifying CLOCK and DATA GPIOs.  <a href="classfabgl_1_1_mouse_a56921ef9b7157bb48751c7517531a798.html#a56921ef9b7157bb48751c7517531a798">More...</a><br /></td></tr>
<tr class="separator:a56921ef9b7157bb48751c7517531a798"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94b7ea8e055cee23e457cec665b0c779"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a94b7ea8e055cee23e457cec665b0c779.html#a94b7ea8e055cee23e457cec665b0c779">begin</a> (int PS2Port)</td></tr>
<tr class="memdesc:a94b7ea8e055cee23e457cec665b0c779"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes <a class="el" href="classfabgl_1_1_mouse.html" title="The PS2 Mouse controller class.">Mouse</a> without initializing the PS/2 controller.  <a href="classfabgl_1_1_mouse_a94b7ea8e055cee23e457cec665b0c779.html#a94b7ea8e055cee23e457cec665b0c779">More...</a><br /></td></tr>
<tr class="separator:a94b7ea8e055cee23e457cec665b0c779"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a231264f15f33e8986765d7644c0c3615"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a231264f15f33e8986765d7644c0c3615.html#a231264f15f33e8986765d7644c0c3615">deltaAvailable</a> ()</td></tr>
<tr class="memdesc:a231264f15f33e8986765d7644c0c3615"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if there is a mouse movement available in the queue.  <a href="classfabgl_1_1_mouse_a231264f15f33e8986765d7644c0c3615.html#a231264f15f33e8986765d7644c0c3615">More...</a><br /></td></tr>
<tr class="separator:a231264f15f33e8986765d7644c0c3615"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefe587a398d3614e3da20cad4b8e2845"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_aefe587a398d3614e3da20cad4b8e2845.html#aefe587a398d3614e3da20cad4b8e2845">emptyQueue</a> ()</td></tr>
<tr class="memdesc:aefe587a398d3614e3da20cad4b8e2845"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empties the mouse status and events queue.  <a href="classfabgl_1_1_mouse_aefe587a398d3614e3da20cad4b8e2845.html#aefe587a398d3614e3da20cad4b8e2845">More...</a><br /></td></tr>
<tr class="separator:aefe587a398d3614e3da20cad4b8e2845"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72788b215173ebeed6b8fe0f40368c90"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a72788b215173ebeed6b8fe0f40368c90.html#a72788b215173ebeed6b8fe0f40368c90">getNextDelta</a> (<a class="el" href="structfabgl_1_1_mouse_delta.html">MouseDelta</a> *delta, int timeOutMS=-1, bool requestResendOnTimeOut=false)</td></tr>
<tr class="memdesc:a72788b215173ebeed6b8fe0f40368c90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a mouse movement from the queue.  <a href="classfabgl_1_1_mouse_a72788b215173ebeed6b8fe0f40368c90.html#a72788b215173ebeed6b8fe0f40368c90">More...</a><br /></td></tr>
<tr class="separator:a72788b215173ebeed6b8fe0f40368c90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11d4bf156584e08773498e4de00ca1ff"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a11d4bf156584e08773498e4de00ca1ff.html#a11d4bf156584e08773498e4de00ca1ff">getNextPacket</a> (<a class="el" href="structfabgl_1_1_mouse_packet.html">MousePacket</a> *packet, int timeOutMS=-1, bool requestResendOnTimeOut=false)</td></tr>
<tr class="memdesc:a11d4bf156584e08773498e4de00ca1ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a mouse raw movement (packet) from the queue.  <a href="classfabgl_1_1_mouse_a11d4bf156584e08773498e4de00ca1ff.html#a11d4bf156584e08773498e4de00ca1ff">More...</a><br /></td></tr>
<tr class="separator:a11d4bf156584e08773498e4de00ca1ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc9072ef74a767f7b1f39880df870a96"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfabgl_1_1_mouse_status.html">MouseStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_abc9072ef74a767f7b1f39880df870a96.html#abc9072ef74a767f7b1f39880df870a96">getNextStatus</a> (int timeOutMS=-1)</td></tr>
<tr class="memdesc:abc9072ef74a767f7b1f39880df870a96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the next status from the status queue.  <a href="classfabgl_1_1_mouse_abc9072ef74a767f7b1f39880df870a96.html#abc9072ef74a767f7b1f39880df870a96">More...</a><br /></td></tr>
<tr class="separator:abc9072ef74a767f7b1f39880df870a96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f62cc2900d28231ffc61d200af2aafa"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a9f62cc2900d28231ffc61d200af2aafa.html#a9f62cc2900d28231ffc61d200af2aafa">getPacketSize</a> ()</td></tr>
<tr class="memdesc:a9f62cc2900d28231ffc61d200af2aafa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets mouse packet size.  <a href="classfabgl_1_1_mouse_a9f62cc2900d28231ffc61d200af2aafa.html#a9f62cc2900d28231ffc61d200af2aafa">More...</a><br /></td></tr>
<tr class="separator:a9f62cc2900d28231ffc61d200af2aafa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad71b1d9186542ee488f761280b7b76da"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___enumerations_gab1e29a3412c837d0e4e7599473e8948f.html#gab1e29a3412c837d0e4e7599473e8948f">PS2DeviceType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_p_s2_device_ad71b1d9186542ee488f761280b7b76da.html#ad71b1d9186542ee488f761280b7b76da">identify</a> ()</td></tr>
<tr class="memdesc:ad71b1d9186542ee488f761280b7b76da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identifies the device attached to the PS2 port.  <a href="classfabgl_1_1_p_s2_device_ad71b1d9186542ee488f761280b7b76da.html#ad71b1d9186542ee488f761280b7b76da">More...</a><br /></td></tr>
<tr class="separator:ad71b1d9186542ee488f761280b7b76da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c7f3389d06c1d96914e8a15eddc8864"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a5c7f3389d06c1d96914e8a15eddc8864.html#a5c7f3389d06c1d96914e8a15eddc8864">isMouseAvailable</a> ()</td></tr>
<tr class="memdesc:a5c7f3389d06c1d96914e8a15eddc8864"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if mouse has been detected and correctly initialized.  <a href="classfabgl_1_1_mouse_a5c7f3389d06c1d96914e8a15eddc8864.html#a5c7f3389d06c1d96914e8a15eddc8864">More...</a><br /></td></tr>
<tr class="separator:a5c7f3389d06c1d96914e8a15eddc8864"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae07d4bbfd23897dc1225821077c8df2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_p_s2_device_aae07d4bbfd23897dc1225821077c8df2.html#aae07d4bbfd23897dc1225821077c8df2">lock</a> (int timeOutMS)</td></tr>
<tr class="memdesc:aae07d4bbfd23897dc1225821077c8df2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets exclusive access to the device.  <a href="classfabgl_1_1_p_s2_device_aae07d4bbfd23897dc1225821077c8df2.html#aae07d4bbfd23897dc1225821077c8df2">More...</a><br /></td></tr>
<tr class="separator:aae07d4bbfd23897dc1225821077c8df2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93d9f415712840a5ee783680e65ce0d3"><td class="memItemLeft" align="right" valign="top">int &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a93d9f415712840a5ee783680e65ce0d3.html#a93d9f415712840a5ee783680e65ce0d3">movementAcceleration</a> ()</td></tr>
<tr class="memdesc:a93d9f415712840a5ee783680e65ce0d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets or set mouse movement acceleration factor.  <a href="classfabgl_1_1_mouse_a93d9f415712840a5ee783680e65ce0d3.html#a93d9f415712840a5ee783680e65ce0d3">More...</a><br /></td></tr>
<tr class="separator:a93d9f415712840a5ee783680e65ce0d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fd3cdfc66306ff22b53325aeb4e2c64"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a3fd3cdfc66306ff22b53325aeb4e2c64.html#a3fd3cdfc66306ff22b53325aeb4e2c64">packetAvailable</a> ()</td></tr>
<tr class="memdesc:a3fd3cdfc66306ff22b53325aeb4e2c64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if there is a raw mouse movement available in the queue.  <a href="classfabgl_1_1_mouse_a3fd3cdfc66306ff22b53325aeb4e2c64.html#a3fd3cdfc66306ff22b53325aeb4e2c64">More...</a><br /></td></tr>
<tr class="separator:a3fd3cdfc66306ff22b53325aeb4e2c64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50910ef42a65d4c139af341f1ef2323f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a50910ef42a65d4c139af341f1ef2323f.html#a50910ef42a65d4c139af341f1ef2323f">reset</a> ()</td></tr>
<tr class="memdesc:a50910ef42a65d4c139af341f1ef2323f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a Reset command to the mouse.  <a href="classfabgl_1_1_mouse_a50910ef42a65d4c139af341f1ef2323f.html#a50910ef42a65d4c139af341f1ef2323f">More...</a><br /></td></tr>
<tr class="separator:a50910ef42a65d4c139af341f1ef2323f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5e89fd1fac0904104dfab776e4fb15c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_p_s2_device_ae5e89fd1fac0904104dfab776e4fb15c.html#ae5e89fd1fac0904104dfab776e4fb15c">resumePort</a> ()</td></tr>
<tr class="memdesc:ae5e89fd1fac0904104dfab776e4fb15c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resumes PS/2 port releasing CLK line.  <a href="classfabgl_1_1_p_s2_device_ae5e89fd1fac0904104dfab776e4fb15c.html#ae5e89fd1fac0904104dfab776e4fb15c">More...</a><br /></td></tr>
<tr class="separator:ae5e89fd1fac0904104dfab776e4fb15c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a069efe90366fe5ca0c22eaf17a0e30fc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_p_s2_device_a069efe90366fe5ca0c22eaf17a0e30fc.html#a069efe90366fe5ca0c22eaf17a0e30fc">sendCommand</a> (uint8_t cmd)</td></tr>
<tr class="memdesc:a069efe90366fe5ca0c22eaf17a0e30fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a raw command to the PS/2 device.  <a href="classfabgl_1_1_p_s2_device_a069efe90366fe5ca0c22eaf17a0e30fc.html#a069efe90366fe5ca0c22eaf17a0e30fc">More...</a><br /></td></tr>
<tr class="separator:a069efe90366fe5ca0c22eaf17a0e30fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cca4ba4bef3e1e010b7614be84323e3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_p_s2_device_a2cca4ba4bef3e1e010b7614be84323e3.html#a2cca4ba4bef3e1e010b7614be84323e3">sendCommand</a> (uint8_t cmd, uint8_t expectedReply)</td></tr>
<tr class="memdesc:a2cca4ba4bef3e1e010b7614be84323e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a raw command to the PS/2 device and wait for reply.  <a href="classfabgl_1_1_p_s2_device_a2cca4ba4bef3e1e010b7614be84323e3.html#a2cca4ba4bef3e1e010b7614be84323e3">More...</a><br /></td></tr>
<tr class="separator:a2cca4ba4bef3e1e010b7614be84323e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1186aeacb40aa5879e71862695140222"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a1186aeacb40aa5879e71862695140222.html#a1186aeacb40aa5879e71862695140222">setResolution</a> (int value)</td></tr>
<tr class="memdesc:a1186aeacb40aa5879e71862695140222"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the resolution.  <a href="classfabgl_1_1_mouse_a1186aeacb40aa5879e71862695140222.html#a1186aeacb40aa5879e71862695140222">More...</a><br /></td></tr>
<tr class="separator:a1186aeacb40aa5879e71862695140222"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47344d7eecf20504d7ea80020aaa0b73"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a47344d7eecf20504d7ea80020aaa0b73.html#a47344d7eecf20504d7ea80020aaa0b73">setSampleRate</a> (int value)</td></tr>
<tr class="memdesc:a47344d7eecf20504d7ea80020aaa0b73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the maximum rate of mouse movements reporting.  <a href="classfabgl_1_1_mouse_a47344d7eecf20504d7ea80020aaa0b73.html#a47344d7eecf20504d7ea80020aaa0b73">More...</a><br /></td></tr>
<tr class="separator:a47344d7eecf20504d7ea80020aaa0b73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e455147c9396652a32d7b668a0e27e7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a1e455147c9396652a32d7b668a0e27e7.html#a1e455147c9396652a32d7b668a0e27e7">setScaling</a> (int value)</td></tr>
<tr class="memdesc:a1e455147c9396652a32d7b668a0e27e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the scaling.  <a href="classfabgl_1_1_mouse_a1e455147c9396652a32d7b668a0e27e7.html#a1e455147c9396652a32d7b668a0e27e7">More...</a><br /></td></tr>
<tr class="separator:a1e455147c9396652a32d7b668a0e27e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a823914d949a5510b933dcfb335e36ab1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a823914d949a5510b933dcfb335e36ab1.html#a823914d949a5510b933dcfb335e36ab1">setUIApp</a> (<a class="el" href="classfabgl_1_1ui_app.html">uiApp</a> *app)</td></tr>
<tr class="memdesc:a823914d949a5510b933dcfb335e36ab1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets current UI app.  <a href="classfabgl_1_1_mouse_a823914d949a5510b933dcfb335e36ab1.html#a823914d949a5510b933dcfb335e36ab1">More...</a><br /></td></tr>
<tr class="separator:a823914d949a5510b933dcfb335e36ab1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a139c6e0877d280a65924a0092a7f76"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a3a139c6e0877d280a65924a0092a7f76.html#a3a139c6e0877d280a65924a0092a7f76">setupAbsolutePositioner</a> (int <a class="el" href="fabutils_8h_ae0ffb42440f0305b6d22a1c6106b6e6f.html#ae0ffb42440f0305b6d22a1c6106b6e6f">width</a>, int <a class="el" href="fabutils_8h_a777dd66f9609a587ee98ad50de301662.html#a777dd66f9609a587ee98ad50de301662">height</a>, bool createAbsolutePositionsQueue, <a class="el" href="classfabgl_1_1_bitmapped_display_controller.html">BitmappedDisplayController</a> *updateDisplayController=nullptr, <a class="el" href="classfabgl_1_1ui_app.html">uiApp</a> *app=nullptr)</td></tr>
<tr class="memdesc:a3a139c6e0877d280a65924a0092a7f76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes absolute position handler.  <a href="classfabgl_1_1_mouse_a3a139c6e0877d280a65924a0092a7f76.html#a3a139c6e0877d280a65924a0092a7f76">More...</a><br /></td></tr>
<tr class="separator:a3a139c6e0877d280a65924a0092a7f76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a001ac4a1061bd8cc88cc1e1d8252d6a3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfabgl_1_1_mouse_status.html">MouseStatus</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a001ac4a1061bd8cc88cc1e1d8252d6a3.html#a001ac4a1061bd8cc88cc1e1d8252d6a3">status</a> ()</td></tr>
<tr class="memdesc:a001ac4a1061bd8cc88cc1e1d8252d6a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets or sets current mouse status.  <a href="classfabgl_1_1_mouse_a001ac4a1061bd8cc88cc1e1d8252d6a3.html#a001ac4a1061bd8cc88cc1e1d8252d6a3">More...</a><br /></td></tr>
<tr class="separator:a001ac4a1061bd8cc88cc1e1d8252d6a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2516eb2086876de9d8abad203aea15c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_p_s2_device_ac2516eb2086876de9d8abad203aea15c.html#ac2516eb2086876de9d8abad203aea15c">suspendPort</a> ()</td></tr>
<tr class="memdesc:ac2516eb2086876de9d8abad203aea15c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Suspends PS/2 port driving the CLK line Low.  <a href="classfabgl_1_1_p_s2_device_ac2516eb2086876de9d8abad203aea15c.html#ac2516eb2086876de9d8abad203aea15c">More...</a><br /></td></tr>
<tr class="separator:ac2516eb2086876de9d8abad203aea15c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f7c9c26b1d53a42eda487efa8f7e546"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a3f7c9c26b1d53a42eda487efa8f7e546.html#a3f7c9c26b1d53a42eda487efa8f7e546">terminateAbsolutePositioner</a> ()</td></tr>
<tr class="memdesc:a3f7c9c26b1d53a42eda487efa8f7e546"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminates absolute position handler.  <a href="classfabgl_1_1_mouse_a3f7c9c26b1d53a42eda487efa8f7e546.html#a3f7c9c26b1d53a42eda487efa8f7e546">More...</a><br /></td></tr>
<tr class="separator:a3f7c9c26b1d53a42eda487efa8f7e546"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9278be8203e1c42e2619179882ae4403"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_p_s2_device_a9278be8203e1c42e2619179882ae4403.html#a9278be8203e1c42e2619179882ae4403">unlock</a> ()</td></tr>
<tr class="memdesc:a9278be8203e1c42e2619179882ae4403"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases device from exclusive access.  <a href="classfabgl_1_1_p_s2_device_a9278be8203e1c42e2619179882ae4403.html#a9278be8203e1c42e2619179882ae4403">More...</a><br /></td></tr>
<tr class="separator:a9278be8203e1c42e2619179882ae4403"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af43b281ab7ec8480fc8ea6092f01a12a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_af43b281ab7ec8480fc8ea6092f01a12a.html#af43b281ab7ec8480fc8ea6092f01a12a">updateAbsolutePosition</a> (<a class="el" href="structfabgl_1_1_mouse_delta.html">MouseDelta</a> *delta)</td></tr>
<tr class="memdesc:af43b281ab7ec8480fc8ea6092f01a12a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates absolute position from the specified mouse delta event.  <a href="classfabgl_1_1_mouse_af43b281ab7ec8480fc8ea6092f01a12a.html#af43b281ab7ec8480fc8ea6092f01a12a">More...</a><br /></td></tr>
<tr class="separator:af43b281ab7ec8480fc8ea6092f01a12a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37498cfb25e63da6f841cc2e16f7ced4"><td class="memItemLeft" align="right" valign="top">int &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_a37498cfb25e63da6f841cc2e16f7ced4.html#a37498cfb25e63da6f841cc2e16f7ced4">wheelAcceleration</a> ()</td></tr>
<tr class="memdesc:a37498cfb25e63da6f841cc2e16f7ced4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets or sets wheel acceleration factor.  <a href="classfabgl_1_1_mouse_a37498cfb25e63da6f841cc2e16f7ced4.html#a37498cfb25e63da6f841cc2e16f7ced4">More...</a><br /></td></tr>
<tr class="separator:a37498cfb25e63da6f841cc2e16f7ced4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:afc85801bd90520c15ab4fe1004a45b02"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfabgl_1_1_mouse_afc85801bd90520c15ab4fe1004a45b02.html#afc85801bd90520c15ab4fe1004a45b02">quickCheckHardware</a> ()</td></tr>
<tr class="memdesc:afc85801bd90520c15ab4fe1004a45b02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disable re-try when a mouse is not found.  <a href="classfabgl_1_1_mouse_afc85801bd90520c15ab4fe1004a45b02.html#afc85801bd90520c15ab4fe1004a45b02">More...</a><br /></td></tr>
<tr class="separator:afc85801bd90520c15ab4fe1004a45b02"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p >The PS2 <a class="el" href="classfabgl_1_1_mouse.html" title="The PS2 Mouse controller class.">Mouse</a> controller class. </p>
<p ><a class="el" href="classfabgl_1_1_mouse.html" title="The PS2 Mouse controller class.">Mouse</a> class connects to one port of the PS2 Controller class (<a class="el" href="classfabgl_1_1_p_s2_controller.html" title="The PS2 device controller class.">fabgl::PS2Controller</a>) to decode and get mouse movements.<br  />
 At the moment <a class="el" href="classfabgl_1_1_mouse.html" title="The PS2 Mouse controller class.">Mouse</a> class supports standard PS/2 mouse (X and Y axis with three buttons) and Microsoft Intellimouse compatible mouse (X and Y axis, scroll wheel with three buttons).<br  />
 <a class="el" href="classfabgl_1_1_mouse.html" title="The PS2 Mouse controller class.">Mouse</a> class allows to set movement parameters, like sample rate, resolution and scaling.<br  />
 The PS2 controller uses ULP coprocessor and RTC slow memory to communicate with the PS2 device.<br  />
 <br  />
 Because <a class="el" href="classfabgl_1_1_p_s2_controller.html" title="The PS2 device controller class.">fabgl::PS2Controller</a> supports up to two PS/2 ports, it is possible to have connected two PS/2 devices. The most common configuration is <a class="el" href="classfabgl_1_1_keyboard.html" title="The PS2 Keyboard controller class.">Keyboard</a> on port 0 and <a class="el" href="classfabgl_1_1_mouse.html" title="The PS2 Mouse controller class.">Mouse</a> on port 1. However you may have two mice connected at the same time using the <a class="el" href="classfabgl_1_1_mouse.html" title="The PS2 Mouse controller class.">Mouse</a> instance on port 0 and creating a new one on port 1.<br  />
</p>
<p >Example: </p><pre class="fragment">// Setup pins GPIO26 for CLK and GPIO27 for DATA
fabgl::Mouse Mouse;
Mouse.begin(GPIO_NUM_26, GPIO_NUM_27);

if (Mouse.deltaAvailable()) {
  MouseDelta mouseDelta;
  Mouse.getNextDelta(&amp;mouseDelta);

  Serial.printf("deltaX = %d  deltaY = %d  deltaZ = %d  leftBtn = %d  midBtn = %d  rightBtn = %d\n",
                mouseDelta.deltaX, mouseDelta.deltaY, mouseDelta.deltaZ,
                mouseDelta.leftButton, mouseDelta.middleButton, mouseDelta.rightButton);
}
</pre> 
<p class="definition">Definition at line <a class="el" href="mouse_8h_source.html#l00111">111</a> of file <a class="el" href="mouse_8h_source.html">mouse.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="mouse_8h_source.html">mouse.h</a></li>
<li><a class="el" href="mouse_8cpp_source.html">mouse.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>fabgl</b></li><li class="navelem"><a class="el" href="classfabgl_1_1_mouse.html">Mouse</a></li>
    <li class="footer">Generated on Mon Aug 29 2022 13:52:05 for FabGL by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3 </li>
  </ul>
</div>
</body>
</html>
